
#include "MyString.h"

#include <string.h>

// Clones a 0-terminated C string, allocating memory using new.
const char *MyString::CloneCString( const char *c_string )
{
	if( c_string == NULL ) return NULL;

	const size_t len = strlen( c_string );
	char *const clone = new char[ len + 1 ];
	memcpy( clone, c_string, len + 1 );

	return clone;
}

// Sets the 0-terminated C string this MyString object
// represents.
void MyString::Set( const char *c_string )
{
	// Makes sure this works when c_string == c_string_
	const char *const temp = MyString::CloneCString( c_string );

	delete[] c_string_;
	c_string_ = temp;
}
